package com.jingogo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jingogo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 用户 Mapper 接口
 *
 * @author jingogo
 * @since 2024 - 01 - 01
 */
@Mapper
public interface UserMapper extends BaseMapper<User> {

    /**
     * 根据手机号查询用户
     */
    User selectByPhone(@Param("phone") String phone);

    /**
     * 根据用户名查询用户
     */
    User selectByUsername(@Param("username") String username);

    /**
     * 检查手机号是否存在
     */
    int countByPhone(@Param("phone") String phone);

    /**
     * 检查用户名是否存在
     */
    int countByUsername(@Param("username") String username);

    /**
     * 根据用户 ID 更新钱包余额
     * @param userId 用户 ID
     * @param balance 新的钱包余额
     * @return 受影响的行数
     */
    int updateWalletBalance(@Param("userId") Long userId, @Param("balance") java.math.BigDecimal balance);
}